<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>IIFE 的使用</title>
</head>
<body>
<script>

    // case1 没有参数没有返回值
    (function () {
        console.log("output from anonymous");
    }());

    // case2 有参无返回值
    (function (para) {
        console.log("parameter = " + para);
    })(123);

    // case3 有参有返回值
    let result = (function (para) {
        return para.toUpperCase()
    })("abc")

    console.log(result);

    // case4 将返回布尔值取反
    console.log(!(function () {
        return false;
    })());


    // case5 将返回值不处理
    console.log(+(function () {
        return 123;
    })());


    // case6 将返回值取负
    console.log(-(function () {
        return 123;
    })());


</script>
</body>
</html>